﻿public interface IItem
{
    string Name { get; }
    bool isWeaponitem { get; }
    bool isHealingitem { get; }
}

public interface IWeapon : IDropItem
{
    int Damage { get; }
    float AttackTime { get; }
    string UpAnimation { get; }
    string DownAnimation { get; }
    string LeftAnimation { get; }
    string RightAnimation { get; }

}

public interface IHealingItem : IDropItem
{
    int HealingPoints { get; }
}

public interface IDropItem : IItem
{


}

class Item : IWeapon, IHealingItem, IDropItem
{
    public string Name { get; set; }
    //start weapon impl
    public int Damage { get; set; }
    public float AttackTime { get; set; }
    public string UpAnimation { get; set; }
    public string DownAnimation { get; set; }
    public string LeftAnimation { get; set; }
    public string RightAnimation { get; set; }
    //end weapon impl

    // start of item impl

    public int HealingPoints { get; set; }
    public bool isWeaponitem { get; set; }
    public bool isHealingitem { get; set; }
    // end item impl
}

public  class Weapon
{

    public static IWeapon Sword { get; private set; }
    public static IWeapon Bow { get; private set; }


    static Weapon()
    {
        Sword = new Item
        {
            Name = "Sword",
            isWeaponitem = true,
            Damage = 20,
            AttackTime = 1f,
            UpAnimation = "Sword_Attack_Up",
            DownAnimation = "Sword_Attack_Down",
            LeftAnimation = "Sword_Attack_Left",
            RightAnimation = "Sword_Attack_Right"



        };

        Bow = new Item
        {
            Name = "Bow",
            isWeaponitem = true,
            Damage = 10,
            AttackTime = 1.5f,
            UpAnimation = "Bow_Attack_Up",
            DownAnimation = "Bow_Attack_Down",
            LeftAnimation = "Bow_Attack_Left",
            RightAnimation = "Bow_Attack_Right"
        };
    }




}

public  class HealingItems
{
    public static IHealingItem Potion { get; private set; }

    static HealingItems()
    {
        Potion = new Item
        {
            Name = "Potion",
            HealingPoints = 10,
            isHealingitem = true

        };
    }
}